package cn.seaboot.commons.ftp;

import cn.seaboot.commons.ftp.pool.FtpPooledSource;
import org.apache.commons.net.ftp.FTPClient;

import java.io.IOException;

/**
 * 主要用于生成{@link Ftp}，接口封装了 Ftp 的生成和销毁操作
 *
 * @author Mr.css
 * @version 2021-12-07 18:05
 * @see FtpSource Ftp 连接工具
 * @see FtpPooledSource 基于连接池的 Ftp 连接工具
 */
public interface DataSource {

    /**
     * 构建一个 FTP 命令工具
     *
     * @return Ftp
     */
    Ftp build();

    /**
     * 创建一个 FTPClient（ftp 连接）
     *
     * @return -
     * @throws IOException-
     */
    FTPClient createFTPClient() throws IOException;

    /**
     * 销毁一个连接
     *
     * @param ftp -
     */
    void closeFtp(Ftp ftp);
}
